1. Technical Field
The present invention relates generally to computer networks and more specifically to Virtual Local Area Networks (VLANs). Still more particularly, the present invention relates to routing data packets from a host within a VLAN.
2. Description of the Related Art
A VLAN is a group of network devices on different physical LAN segments that are able to communicate with each other as if they were on the same physical LAN segment. Network devices and their respective network traffic can be mapped into VLAN groups using port-based VLAN mapping, MAC address-based VLAN mapping, protocol-based VLAN mapping, IP subnet-based VLAN mapping, and application-based VLAN mapping, or any combination thereof. The most widely accepted standard for implementing VLANs in an Ethernet network is defined by the IEEE in its 802.1Q standard. Implementing 802.1Q VLANs involves tagging packets with a Tag Control Information field that identifies the VLAN to which the packets belong. According to the 802.1Q standard, the Tag Control Information field includes a 12-bit VLAN Identifier (ID) field that enables VLANs to be uniquely identified.
One significant limitation of VLAN technology that utilizes the 802.1Q VLAN standard is that the length of the VLAN ID field in the 802.1Q VLAN tag is 12 bits. Consequently, any network in which VLANs are deployed is limited to 4,096 unique VLAN IDs (actually, the number of unique VLAN IDs is limited to 4,094 because the value of all ones is reserved and the value of all zeros indicates a priority tag). Because the redundant use of VLAN IDs in the same network should be avoided, the limited number of unique VLAN IDs that are possible using the 12-bit VLAN ID field limits the scalability of a network that utilizes 802.1Q VLANs.
Data which belongs to a VLAN may be tagged to identify that the data belongs to the VLAN. A VLAN tag may comprise, for example, a field in the header of a data frame. The tag may, for example, comprise a few bits which identify a VLAN ID number (“VID”). Within the conventional VLAN protocol, packets meant for different VLANs are tagged with a header specifying the VLAN tagID (referred to hereinafter as a VLAN ID) that distinguishes the traffic between VLANs traversing the same switch. Any number of physical ports of a particular switch may be associated with any number of groups within the switch by using the virtual local area network (VLAN) arrangement that virtually associates the port with a particular VLAN designation. More specifically, the switch or hub associates VLAN designations with its ports and further associates those VLAN designations with messages transmitted from any of the ports to which the VLAN designation has been assigned.
The VLAN designation for each port is stored in a memory portion of the switch such that every time a message is received on a given access port, the VLAN designation for that port is associated with the message. In many cases, it may be desirable to interconnect a plurality of these switches in order to extend the VLAN associations of ports in the network. Those entities having the same VLAN designation function as if they are all part of the same LAN. VLAN-configured bridges are specifically configured to prevent message exchanges between parts of the network having different VLAN designations in order to preserve the boundaries of each VLAN.
There are two types of VLAN behavior: tagged VLAN (where the host, i.e., an originating device/terminal, has the responsibility to tag any outgoing packet with the appropriate VLAN ID, and the switch will drop packets received on that port that are tagged with the wrong ID); and untagged VLAN (where the host is unaware of the VLAN ID, and the switch has the task of placing the VLAN header on any outgoing packets). While at first glance it appears that untagged VLAN is the simplest option with less administrative burden, in the case where more than one VLAN ID must be carried over the same port, it becomes necessary to use tagged VLAN. That is, untagged VLAN only works if there is only one VLAN ID on that port, since all untagged packets on the port will be tagged by the specified VLAN ID.
In the case of tagged VLAN, the host must be configured to know which VLAN ID(s) can be sent from a specific host because using the wrong VLAN ID will result in the switch dropping the packet. There is therefore an administrative problem with conventional tagged VLAN protocols of making sure each host knows of all the VLAN IDs that may be utilized on all of the host's ports.